package com.xujie.sportsmeeting.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 运动员统计VO
 */
@Data
@Schema(description = "运动员统计信息")
public class AthleteStatisticsVO {

    @Schema(description = "运动员ID")
    private Long athleteId;

    @Schema(description = "运动员姓名")
    private String athleteName;

    @Schema(description = "学号")
    private String studentNumber;

    @Schema(description = "院系")
    private String department;

    @Schema(description = "班级")
    private String className;

    @Schema(description = "性别")
    private String gender;

    @Schema(description = "报名项目数")
    private Integer registeredEvents;

    @Schema(description = "参赛项目数")
    private Integer participatedEvents;

    @Schema(description = "获得总分")
    private BigDecimal totalScore;

    @Schema(description = "平均得分")
    private BigDecimal averageScore;

    @Schema(description = "最高得分")
    private BigDecimal maxScore;

    @Schema(description = "金牌数")
    private Integer goldMedals;

    @Schema(description = "银牌数")
    private Integer silverMedals;

    @Schema(description = "铜牌数")
    private Integer bronzeMedals;

    @Schema(description = "总奖牌数")
    private Integer totalMedals;

    @Schema(description = "最佳排名")
    private Integer bestRanking;

    @Schema(description = "平均排名")
    private BigDecimal averageRanking;

    @Schema(description = "破纪录次数")
    private Integer recordBreakingCount;

    @Schema(description = "个人最佳成绩项目")
    private String bestPerformanceEvent;

    @Schema(description = "个人最佳成绩值")
    private String bestPerformanceValue;

    @Schema(description = "院系排名")
    private Integer departmentRanking;

    @Schema(description = "班级排名")
    private Integer classRanking;

    @Schema(description = "全校排名")
    private Integer schoolRanking;

    @Schema(description = "详细成绩列表")
    private List<AthleteScoreDetailVO> scoreDetails;

    @Schema(description = "参赛项目分布")
    private List<EventParticipationVO> eventParticipations;

    @Schema(description = "成绩趋势")
    private List<ScoreTrendVO> scoreTrends;
}
